/*
 * Copyright (c) 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy
 * of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package findreplace;

/**
 * Find and replace a fixed string in another string.
 *
 * Example:
 *  SimpleStringReplacer r = new SimpleStringReplacer("Hello world", "l");
 *  int loop = 0;
 *  while (r.next()) {
 *    loop += 1;
 *    match = r.currentMatch();
 *    if (loop % 1 != 0) {
 *      r.replaceWith("L");
 *    }
 *  }
 *  // r.result() => "HeLlo worLd"
 *
 *
 * @author aiuto@google.com (Tony Aiuto)
 */
public class SimpleStringReplacer extends AbstractSubstringReplacer {

  public SimpleStringReplacer(String text, String pattern) {
    super(text);
    this.pattern = pattern;
  }

  public boolean next() {
    clearMatch();
    int matchStart = text.indexOf(pattern, currentPosition);
    if (matchStart < 0) return false;

    matchLength = pattern.length();
    skipOver(matchStart - currentPosition);
    return true;
  }

  private final String pattern;
}
